package com.speaktoitcookbook.dao;

import java.util.List;

import com.speaktoitcookbook.bean.UserInfo;

/**
 * 用户个人信息操作接口
 * 
 * @author 杨强
 * 
 */
public interface IUserInfoDao {

    /**
     * 更新用户个人信息
     * 
     * @param userInfo
     *            用户个人信息
     * @return true成功，false失败
     */
    public boolean doUpdate(UserInfo userInfo);

    /**
     * 获取用户个人信息
     * 
     * @param userID
     *            用户标识
     * @return 用户个人信息
     */
    public UserInfo getUserInfo(String userID);
    
    /**
     * 获取指定条件的用户个人信息集合
     * @param params
     *            查询条件，可为空
     *            <p>
     *            示例：
     *            <ol>
     *            <li>"where `nickname` like '%123%'"<br>
     *            将查询个人信息昵称中包含123的信息集合</li>
     *            <li>new String[]{"where `nickname` like '%123%' ",
     *            "and `userName` = '123'"}<br>
     *            将查询个人信息昵称中中包含123并且真实姓名为123的信息集合</li>
     *            </ol>
     *            </p>
     * @return
     */
    public List<UserInfo> getUserInfo(Object... params);
    
    /**
     * 查找新数据库中指定用户人数
     * 
     * @param params
     *            查询条件，可为空
     *            <p>
     *            示例：
     *            <ol>
     *            <li>"where `nickname` like '%123%'"<br>
     *            将查询个人信息昵称中包含123的用户人数</li>
     *            <li>new String[]{"where `nickname` like '%123%' ",
     *            "and `userName` = '123'"}<br>
     *            将查询个人信息昵称中中包含123并且真实姓名为123的用户人数</li>
     *            </ol>
     *            </p>
     * @return 相关人数
     */
    public long getUserCount(Object... params);
}
